home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dr. Windows 3
/
dr win3.zip
/
dr win3
/
PROGRAMR
/
OLE2BOOK.ZIP
/
CHAP08.ZIP
/
CHAP08
/
COSCHMOO
/
MAKEFILE
< prev
next >
Wrap
Text File
|
1993-06-22
|
4KB
|
143 lines
#
# MAKEFILE
# Component Schmoo Chapter 8
#
# Copyright (c)1993 Microsoft Corporation, All Rights Reserved
#
# Kraig Brockschmidt, Software Design Engineer
# Microsoft Systems Developer Relations
#
# Internet : kraigb@microsoft.com
# Compuserve: >INTERNET:kraigb@microsoft.com
#
#Add '#' to the next line for 'noisy' operation
!CMDSWITCHES +s
#
#Compiler flags
#Use "SET RETAIL=1" from MS-DOS to compile non-debug version.
#
!ifndef RETAIL
CFLAGS = -c -nologo -Od -AM -Zipe -G2s -W3 -GA -GEs
LINK = /al:16/ONERROR:NOEXE/CO
DEFS = -DSTRICT -DDEBUG
!else
CFLAGS = -c -nologo -Oas -AM -Zpe -G2s -W3 -GA -GEs
LINK = /al:16/ONERROR:NOEXE
DEFS = -DSTRICT
!endif
!ifdef SDI
DOC = -DSDI
CLASSLIB= classSDI
DIR = SDI
SRC_DIR = ..
!else
DOC = -DMDI
CLASSLIB= classMDI
DIR = MDI
SRC_DIR = ..
!endif
.SUFFIXES: .h .obj .exe .cpp .res .rc
TARGET = coschmoo
goal: cd_build precomp.pch $(TARGET).exe cd_src
cd_build:
cd $(DIR)
cd_src:
cd ..
clean:
cd $(DIR)
del *.pch
del *.obj
del *.res
del *.exe
cd ..
PCHFLAGS= -Yu$(TARGET).h -Fpprecomp.pch
INCLS = $(SRC_DIR)\$(TARGET).h $(SRC_DIR)\resource.h
OLELIBS = compobj storage ole2
LIBS = libw mlibcew commdlg bttncur gizmobar stastrip $(CLASSLIB)
OBJS1 = $(TARGET).obj client.obj
OBJS2 = document.obj iadvsink.obj
OBJS3 = idroptgt.obj idropsrc.obj
OBJS = $(OBJS1) $(OBJS2) $(OBJS3)
RCFILES1 = $(SRC_DIR)\$(TARGET).ico $(SRC_DIR)\document.ico $(SRC_DIR)\about.dlg
RCFILES2 = $(SRC_DIR)\gizmo72.bmp $(SRC_DIR)\gizmo96.bmp $(SRC_DIR)\gizmo120.bmp
RCFILES = $(RCFILES1) $(RCFILES2)
#####
{$(SRC_DIR)}.cpp{}.obj:
echo ++++++++++
echo Compiling $*.cpp
cl $(CFLAGS) $(PCHFLAGS) $(DEFS) $(DOC) $(SRC_DIR)\$*.cpp
{$(SRC_DIR)}.rc{}.res:
echo +++++++++
echo Compiling Resources
rc -r -i$(SRC_DIR) $(DEFS) $(DOC) -fo$@ $(SRC_DIR)\$*.rc
precomp.pch : $(SRC_DIR)\$(TARGET).h
echo +++++++++
echo Precompiling $(TARGET).h
cl $(CFLAGS) $(DEFS) -Yc$(TARGET).h -Fpprecomp.pch -Foprecomp $(SRC_DIR)\precomp.cpp
#This rule builds a linker response file on the fly depending on debug flags
$(TARGET).exe : $(OBJS) $(TARGET).res $(SRC_DIR)\$(TARGET).def
echo ++++++++++
echo Linking $@
echo precomp.obj + > $(TARGET).lrf
echo $(OBJS1) + >> $(TARGET).lrf
echo $(OBJS2) + >> $(TARGET).lrf
echo $(OBJS3) >> $(TARGET).lrf
echo $(TARGET).exe $(LINK) >> $(TARGET).lrf
echo nul/li >> $(TARGET).lrf
echo $(OLELIBS) + >> $(TARGET).lrf
echo $(LIBS) /NOD/NOE >> $(TARGET).lrf
echo $(SRC_DIR)\$(TARGET).def >> $(TARGET).lrf
link @$(TARGET).lrf
del $(TARGET).lrf
rc -v $(TARGET).res $(TARGET).exe
##### Dependencies #####
$(TARGET).res : $(SRC_DIR)\$(TARGET).rc $(INCLS) $(RCFILES)
#Application level things
#This rule is to exclude precompiled header use when INICLSID defined
$(TARGET).obj : $(SRC_DIR)\$(TARGET).cpp $(INCLS)
echo ++++++++++
echo Compiling $*.cpp
cl $(CFLAGS) $(DEFS) $(DOC) $(SRC_DIR)\$*.cpp
client.obj : $(SRC_DIR)\client.cpp $(INCLS)
#Document level things
document.obj : $(SRC_DIR)\document.cpp $(INCLS)
iadvsink.obj : $(SRC_DIR)\iadvsink.cpp $(INCLS)
idroptgt.obj : $(SRC_DIR)\idroptgt.cpp $(INCLS)
idropsrc.obj : $(SRC_DIR)\idropsrc.cpp $(INCLS)